import Cookies from 'js-cookie'

import config from './config'

const { projectName } = config

/**
 * window.localStorage 浏览器永久缓存
 */
export const Local = {
  getKey(key) {
    return `${projectName}:${key}`
  },
  /** 设置永久缓存 */
  set(key, val) {
    window.localStorage.setItem(Local.getKey(key), JSON.stringify(val))
  },
  /** 获取永久缓存 */
  get(key) {
    const json = window.localStorage.getItem(Local.getKey(key))
    if (!json || json === 'null' || json === 'undefined') {
      return
    }
    return JSON.parse(json)
  },
  /** 移除永久缓存 */
  remove(key) {
    window.localStorage.removeItem(Local.getKey(key))
  },
  /** 移除全部永久缓存 */
  clear() {
    window.localStorage.clear()
  },
}

/**
 * window.sessionStorage 浏览器临时缓存
 */
export const Session = {
  /** 设置临时缓存 */
  set(key, val) {
    window.sessionStorage.setItem(key, JSON.stringify(val))
  },
  /** 获取临时缓存 */
  get(key) {
    const json = window.sessionStorage.getItem(key)
    if (!json || json === 'null' || json === 'undefined') {
      return
    }
    return JSON.parse(json)
  },
  /** 移除临时缓存 */
  remove(key) {
    if (key === `${projectName}:token`) return Cookies.remove(key)
    window.sessionStorage.removeItem(key)
  },
  /** 移除全部临时缓存 */
  clear() {
    Cookies.remove(`${projectName}:token`)
    window.sessionStorage.clear()
  },
  /** 存储token */
  setToken(val) {
    Cookies.set(`${projectName}:token`, val)
  },
  /** 获取当前存储的token */
  getToken() {
    return Cookies.get(`${projectName}:token`)
  },
}
